/************************************************************************************
 * arch/arm/src/tiva/chip/tm4c_pinmap.h
 *
 *   Copyright (C) 2014 Gregory Nutt. All rights reserved.
 *   Author: Gregory Nutt <gnutt@nuttx.org>
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in
 *    the documentation and/or other materials provided with the
 *    distribution.
 * 3. Neither the name NuttX nor the names of its contributors may be
 *    used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
 * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 *
 ************************************************************************************/

#ifndef __ARCH_ARM_SRC_TIVA_CHIP_TM4C_PINMAP_H
#define __ARCH_ARM_SRC_TIVA_CHIP_TM4C_PINMAP_H

/************************************************************************************
 * Included Files
 ************************************************************************************/

#include <nuttx/config.h>

/************************************************************************************
 * Pre-processor Definitions
 ************************************************************************************/
/* Alternate Pin Functions.  All members of the TM4C family share the same pin
 * multiplexing (although they may differ in the pins physically available).
 *
 * Alternative pin selections are provided with a numeric suffix like _1, _2, etc.
 * Drivers, however, will use the pin selection without the numeric suffix.
 * Additional definitions are required in the board.h file.  For example, if
 * CAN1_RX connects via PN0 on some board, then the following definitions should
 * appear in the board.h header file for that board:
 *
 * #define GPIO_CAN1_RX GPIO_CAN1_RX_1
 *
 * The driver will then automatically configure PA11 as the CAN1 RX pin.
 */

/* WARNING!!! WARNING!!! WARNING!!! WARNING!!! WARNING!!! WARNING!!! WARNING!!!
 * Additional effort is required to select specific GPIO options such as frequency,
 * open-drain/push-pull, and pull-up/down!  Just the basics are defined for most
 * pins in this file.
 */

#if defined(CONFIG_ARCH_CHIP_TM4C123GH6ZRB)

#  define GPIO_ADC_AIN0        (GPIO_FUNC_ANINPUT | GPIO_PORTE | GPIO_PIN_3)
#  define GPIO_ADC_AIN1        (GPIO_FUNC_ANINPUT | GPIO_PORTE | GPIO_PIN_2)
#  define GPIO_ADC_AIN2        (GPIO_FUNC_ANINPUT | GPIO_PORTE | GPIO_PIN_1)
#  define GPIO_ADC_AIN3        (GPIO_FUNC_ANINPUT | GPIO_PORTE | GPIO_PIN_0)
#  define GPIO_ADC_AIN4        (GPIO_FUNC_ANINPUT | GPIO_PORTD | GPIO_PIN_7)
#  define GPIO_ADC_AIN5        (GPIO_FUNC_ANINPUT | GPIO_PORTD | GPIO_PIN_6)
#  define GPIO_ADC_AIN6        (GPIO_FUNC_ANINPUT | GPIO_PORTD | GPIO_PIN_5)
#  define GPIO_ADC_AIN7        (GPIO_FUNC_ANINPUT | GPIO_PORTD | GPIO_PIN_4)
#  define GPIO_ADC_AIN8        (GPIO_FUNC_ANINPUT | GPIO_PORTE | GPIO_PIN_5)
#  define GPIO_ADC_AIN9        (GPIO_FUNC_ANINPUT | GPIO_PORTE | GPIO_PIN_4)
#  define GPIO_ADC_AIN10       (GPIO_FUNC_ANINPUT | GPIO_PORTB | GPIO_PIN_4)
#  define GPIO_ADC_AIN11       (GPIO_FUNC_ANINPUT | GPIO_PORTB | GPIO_PIN_5)
#  define GPIO_ADC_AIN12       (GPIO_FUNC_ANINPUT | GPIO_PORTD | GPIO_PIN_3)
#  define GPIO_ADC_AIN13       (GPIO_FUNC_ANINPUT | GPIO_PORTD | GPIO_PIN_2)
#  define GPIO_ADC_AIN14       (GPIO_FUNC_ANINPUT | GPIO_PORTD | GPIO_PIN_1)
#  define GPIO_ADC_AIN15       (GPIO_FUNC_ANINPUT | GPIO_PORTD | GPIO_PIN_0)
#  define GPIO_ADC_AIN16       (GPIO_FUNC_ANINPUT | GPIO_PORTK | GPIO_PIN_0)
#  define GPIO_ADC_AIN17       (GPIO_FUNC_ANINPUT | GPIO_PORTK | GPIO_PIN_1)
#  define GPIO_ADC_AIN18       (GPIO_FUNC_ANINPUT | GPIO_PORTK | GPIO_PIN_2)
#  define GPIO_ADC_AIN19       (GPIO_FUNC_ANINPUT | GPIO_PORTK | GPIO_PIN_3)
#  define GPIO_ADC_AIN20       (GPIO_FUNC_ANINPUT | GPIO_PORTE | GPIO_PIN_7)
#  define GPIO_ADC_AIN21       (GPIO_FUNC_ANINPUT | GPIO_PORTE | GPIO_PIN_6)
#  define GPIO_ADC_AIN22       (GPIO_FUNC_ANINPUT | GPIO_PORTN | GPIO_PIN_1)
#  define GPIO_ADC_AIN23       (GPIO_FUNC_ANINPUT | GPIO_PORTN | GPIO_PIN_0)

#  define GPIO_CAN0_RX_1       (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTN | GPIO_PIN_0)
#  define GPIO_CAN0_RX_2       (GPIO_FUNC_PFINPUT | GPIO_ALT_3 | GPIO_PORTF | GPIO_PIN_0)
#  define GPIO_CAN0_RX_3       (GPIO_FUNC_PFINPUT | GPIO_ALT_8 | GPIO_PORTB | GPIO_PIN_4)
#  define GPIO_CAN0_RX_4       (GPIO_FUNC_PFINPUT | GPIO_ALT_8 | GPIO_PORTE | GPIO_PIN_4)
#  define GPIO_CAN0_TX_1       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTN | GPIO_PIN_1)
#  define GPIO_CAN0_TX_2       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_3 | GPIO_PORTF | GPIO_PIN_3)
#  define GPIO_CAN0_TX_3       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_8 | GPIO_PORTB | GPIO_PIN_5)
#  define GPIO_CAN0_TX_4       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_8 | GPIO_PORTE | GPIO_PIN_5)
#  define GPIO_CAN1_RX_1       (GPIO_FUNC_PFINPUT | GPIO_ALT_8 | GPIO_PORTA | GPIO_PIN_0)
#  define GPIO_CAN1_RX_2       (GPIO_FUNC_PFINPUT | GPIO_ALT_8 | GPIO_PORTE | GPIO_PIN_6)
#  define GPIO_CAN1_TX_1       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_8 | GPIO_PORTA | GPIO_PIN_1)
#  define GPIO_CAN1_TX_2       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_8 | GPIO_PORTE | GPIO_PIN_7)

#  define GPIO_CMP0_NIN        (GPIO_FUNC_ANINPUT | GPIO_PORTC | GPIO_PIN_7)
#  define GPIO_CMP0_OUT_1      (GPIO_FUNC_PFOUTPUT | GPIO_ALT_8 | GPIO_PORTK | GPIO_PIN_4)
#  define GPIO_CMP0_OUT_2      (GPIO_FUNC_PFOUTPUT | GPIO_ALT_9 | GPIO_PORTF | GPIO_PIN_0)
#  define GPIO_CMP0_PIN        (GPIO_FUNC_ANINPUT | GPIO_PORTC | GPIO_PIN_6)
#  define GPIO_CMP1_NIN        (GPIO_FUNC_ANINPUT | GPIO_PORTC | GPIO_PIN_4)
#  define GPIO_CMP1_OUT_1      (GPIO_FUNC_PFOUTPUT | GPIO_ALT_8 | GPIO_PORTK | GPIO_PIN_5)
#  define GPIO_CMP1_OUT_2      (GPIO_FUNC_PFOUTPUT | GPIO_ALT_9 | GPIO_PORTF | GPIO_PIN_1)
#  define GPIO_CMP1_PIN        (GPIO_FUNC_ANINPUT | GPIO_PORTC | GPIO_PIN_5)
#  define GPIO_CMP2_NIN        (GPIO_FUNC_ANINPUT | GPIO_PORTJ | GPIO_PIN_5)
#  define GPIO_CMP2_OUT_1      (GPIO_FUNC_PFOUTPUT | GPIO_ALT_8 | GPIO_PORTK | GPIO_PIN_6)
#  define GPIO_CMP2_OUT_2      (GPIO_FUNC_PFOUTPUT | GPIO_ALT_9 | GPIO_PORTF | GPIO_PIN_2)
#  define GPIO_CMP2_PIN        (GPIO_FUNC_ANINPUT | GPIO_PORTJ | GPIO_PIN_4)

#  define GPIO_HIB_RTCCLK      (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTK | GPIO_PIN_4)

#  define GPIO_I2C0_SCL        (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTB | GPIO_PIN_2)
#  define GPIO_I2C0_SDA        (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTB | GPIO_PIN_3)
#  define GPIO_I2C1_SCL_1      (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTA | GPIO_PIN_6)
#  define GPIO_I2C1_SCL_2      (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTG | GPIO_PIN_4)
#  define GPIO_I2C1_SDA_1      (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTA | GPIO_PIN_7)
#  define GPIO_I2C1_SDA_2      (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTG | GPIO_PIN_5)
#  define GPIO_I2C2_SCL_1      (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTE | GPIO_PIN_4)
#  define GPIO_I2C2_SCL_2      (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTF | GPIO_PIN_6)
#  define GPIO_I2C2_SDA_1      (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTE | GPIO_PIN_5)
#  define GPIO_I2C2_SDA_2      (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTF | GPIO_PIN_7)
#  define GPIO_I2C3_SCL_1      (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTD | GPIO_PIN_0)
#  define GPIO_I2C3_SCL_2      (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTG | GPIO_PIN_0)
#  define GPIO_I2C3_SDA_1      (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTD | GPIO_PIN_1)
#  define GPIO_I2C3_SDA_2      (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTG | GPIO_PIN_1)
#  define GPIO_I2C4_SCL        (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTG | GPIO_PIN_2)
#  define GPIO_I2C4_SDA_1      (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTG | GPIO_PIN_3)
#  define GPIO_I2C4_SDA_2      (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTG | GPIO_PIN_3)
#  define GPIO_I2C5_SCL_1      (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTB | GPIO_PIN_6)
#  define GPIO_I2C5_SCL_2      (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTG | GPIO_PIN_6)
#  define GPIO_I2C5_SDA_1      (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTB | GPIO_PIN_7)
#  define GPIO_I2C5_SDA_2      (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTG | GPIO_PIN_7)

#  define GPIO_M0_PWM0_1       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTP | GPIO_PIN_0)
#  define GPIO_M0_PWM0_2       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_4 | GPIO_PORTB | GPIO_PIN_6)
#  define GPIO_M0_PWM0_3       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_4 | GPIO_PORTH | GPIO_PIN_0)
#  define GPIO_M0_PWM1_1       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTP | GPIO_PIN_1)
#  define GPIO_M0_PWM1_2       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_4 | GPIO_PORTB | GPIO_PIN_7)
#  define GPIO_M0_PWM1_3       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_4 | GPIO_PORTH | GPIO_PIN_1)
#  define GPIO_M0_PWM2_1       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTP | GPIO_PIN_2)
#  define GPIO_M0_PWM2_2       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_4 | GPIO_PORTB | GPIO_PIN_4)
#  define GPIO_M0_PWM2_3       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_4 | GPIO_PORTH | GPIO_PIN_2)
#  define GPIO_M0_PWM3_1       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTP | GPIO_PIN_3)
#  define GPIO_M0_PWM3_2       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_4 | GPIO_PORTB | GPIO_PIN_5)
#  define GPIO_M0_PWM3_3       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_4 | GPIO_PORTH | GPIO_PIN_3)
#  define GPIO_M0_PWM4_1       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTP | GPIO_PIN_4)
#  define GPIO_M0_PWM4_2       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_2 | GPIO_PORTM | GPIO_PIN_6)
#  define GPIO_M0_PWM4_3       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_4 | GPIO_PORTE | GPIO_PIN_4)
#  define GPIO_M0_PWM4_4       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_4 | GPIO_PORTG | GPIO_PIN_4)
#  define GPIO_M0_PWM4_5       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_4 | GPIO_PORTH | GPIO_PIN_4)
#  define GPIO_M0_PWM5_1       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTP | GPIO_PIN_5)
#  define GPIO_M0_PWM5_2       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_2 | GPIO_PORTM | GPIO_PIN_7)
#  define GPIO_M0_PWM5_3       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_4 | GPIO_PORTE | GPIO_PIN_5)
#  define GPIO_M0_PWM5_4       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_4 | GPIO_PORTG | GPIO_PIN_5)
#  define GPIO_M0_PWM5_5       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_4 | GPIO_PORTH | GPIO_PIN_5)
#  define GPIO_M0_PWM6_1       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTP | GPIO_PIN_6)
#  define GPIO_M0_PWM6_2       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_2 | GPIO_PORTN | GPIO_PIN_2)
#  define GPIO_M0_PWM6_3       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_4 | GPIO_PORTC | GPIO_PIN_4)
#  define GPIO_M0_PWM6_4       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_4 | GPIO_PORTD | GPIO_PIN_0)
#  define GPIO_M0_PWM6_5       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_4 | GPIO_PORTG | GPIO_PIN_6)
#  define GPIO_M0_PWM6_6       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_4 | GPIO_PORTH | GPIO_PIN_6)
#  define GPIO_M0_PWM7_1       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTP | GPIO_PIN_7)
#  define GPIO_M0_PWM7_2       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_2 | GPIO_PORTN | GPIO_PIN_3)
#  define GPIO_M0_PWM7_3       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_4 | GPIO_PORTC | GPIO_PIN_5)
#  define GPIO_M0_PWM7_4       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_4 | GPIO_PORTD | GPIO_PIN_1)
#  define GPIO_M0_PWM7_5       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_4 | GPIO_PORTG | GPIO_PIN_7)
#  define GPIO_M0_PWM7_6       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_4 | GPIO_PORTH | GPIO_PIN_7)
#  define GPIO_M0_PWM_FAULT0_1 (GPIO_FUNC_PFINPUT | GPIO_ALT_4 | GPIO_PORTD | GPIO_PIN_2)
#  define GPIO_M0_PWM_FAULT0_2 (GPIO_FUNC_PFINPUT | GPIO_ALT_4 | GPIO_PORTD | GPIO_PIN_6)
#  define GPIO_M0_PWM_FAULT0_3 (GPIO_FUNC_PFINPUT | GPIO_ALT_4 | GPIO_PORTF | GPIO_PIN_2)
#  define GPIO_M0_PWM_FAULT0_4 (GPIO_FUNC_PFINPUT | GPIO_ALT_6 | GPIO_PORTH | GPIO_PIN_0)
#  define GPIO_M0_PWM_FAULT0_5 (GPIO_FUNC_PFINPUT | GPIO_ALT_6 | GPIO_PORTK | GPIO_PIN_4)
#  define GPIO_M0_PWM_FAULT1_1 (GPIO_FUNC_PFINPUT | GPIO_ALT_4 | GPIO_PORTD | GPIO_PIN_7)
#  define GPIO_M0_PWM_FAULT1_2 (GPIO_FUNC_PFINPUT | GPIO_ALT_4 | GPIO_PORTF | GPIO_PIN_3)
#  define GPIO_M0_PWM_FAULT1_3 (GPIO_FUNC_PFINPUT | GPIO_ALT_4 | GPIO_PORTG | GPIO_PIN_2)
#  define GPIO_M0_PWM_FAULT1_4 (GPIO_FUNC_PFINPUT | GPIO_ALT_6 | GPIO_PORTH | GPIO_PIN_1)
#  define GPIO_M0_PWM_FAULT1_5 (GPIO_FUNC_PFINPUT | GPIO_ALT_6 | GPIO_PORTK | GPIO_PIN_5)
#  define GPIO_M0_PWM_FAULT2_1 (GPIO_FUNC_PFINPUT | GPIO_ALT_4 | GPIO_PORTF | GPIO_PIN_4)
#  define GPIO_M0_PWM_FAULT2_2 (GPIO_FUNC_PFINPUT | GPIO_ALT_4 | GPIO_PORTG | GPIO_PIN_3)
#  define GPIO_M0_PWM_FAULT2_3 (GPIO_FUNC_PFINPUT | GPIO_ALT_6 | GPIO_PORTH | GPIO_PIN_2)
#  define GPIO_M0_PWM_FAULT2_4 (GPIO_FUNC_PFINPUT | GPIO_ALT_6 | GPIO_PORTK | GPIO_PIN_6)
#  define GPIO_M0_PWM_FAULT3_1 (GPIO_FUNC_PFINPUT | GPIO_ALT_4 | GPIO_PORTF | GPIO_PIN_5)
#  define GPIO_M0_PWM_FAULT3_2 (GPIO_FUNC_PFINPUT | GPIO_ALT_6 | GPIO_PORTH | GPIO_PIN_3)
#  define GPIO_M0_PWM_FAULT3_3 (GPIO_FUNC_PFINPUT | GPIO_ALT_6 | GPIO_PORTK | GPIO_PIN_7)
#  define GPIO_M1_PWM0_1       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTQ | GPIO_PIN_0)
#  define GPIO_M1_PWM0_2       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_5 | GPIO_PORTD | GPIO_PIN_0)
#  define GPIO_M1_PWM0_3       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_5 | GPIO_PORTG | GPIO_PIN_2)
#  define GPIO_M1_PWM1_1       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTQ | GPIO_PIN_1)
#  define GPIO_M1_PWM1_2       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_5 | GPIO_PORTD | GPIO_PIN_1)
#  define GPIO_M1_PWM1_3       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_5 | GPIO_PORTG | GPIO_PIN_3)
#  define GPIO_M1_PWM2_1       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTQ | GPIO_PIN_2)
#  define GPIO_M1_PWM2_2       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_5 | GPIO_PORTA | GPIO_PIN_6)
#  define GPIO_M1_PWM2_3       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_5 | GPIO_PORTE | GPIO_PIN_4)
#  define GPIO_M1_PWM2_4       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_5 | GPIO_PORTG | GPIO_PIN_4)
#  define GPIO_M1_PWM3_1       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTQ | GPIO_PIN_3)
#  define GPIO_M1_PWM3_2       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_5 | GPIO_PORTA | GPIO_PIN_7)
#  define GPIO_M1_PWM3_3       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_5 | GPIO_PORTE | GPIO_PIN_5)
#  define GPIO_M1_PWM3_4       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_5 | GPIO_PORTG | GPIO_PIN_5)
#  define GPIO_M1_PWM4_1       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTQ | GPIO_PIN_4)
#  define GPIO_M1_PWM4_2       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_2 | GPIO_PORTN | GPIO_PIN_4)
#  define GPIO_M1_PWM4_3       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_5 | GPIO_PORTF | GPIO_PIN_0)
#  define GPIO_M1_PWM5_1       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTQ | GPIO_PIN_5)
#  define GPIO_M1_PWM5_2       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_2 | GPIO_PORTN | GPIO_PIN_5)
#  define GPIO_M1_PWM5_3       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_5 | GPIO_PORTF | GPIO_PIN_1)
#  define GPIO_M1_PWM6_1       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTQ | GPIO_PIN_6)
#  define GPIO_M1_PWM6_2       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_2 | GPIO_PORTN | GPIO_PIN_6)
#  define GPIO_M1_PWM6_3       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_5 | GPIO_PORTF | GPIO_PIN_2)
#  define GPIO_M1_PWM7_1       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTQ | GPIO_PIN_7)
#  define GPIO_M1_PWM7_2       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_2 | GPIO_PORTN | GPIO_PIN_7)
#  define GPIO_M1_PWM7_3       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_5 | GPIO_PORTF | GPIO_PIN_3)
#  define GPIO_M1_PWM_FAULT0_1 (GPIO_FUNC_PFINPUT | GPIO_ALT_5 | GPIO_PORTF | GPIO_PIN_4)
#  define GPIO_M1_PWM_FAULT0_2 (GPIO_FUNC_PFINPUT | GPIO_ALT_6 | GPIO_PORTK | GPIO_PIN_0)
#  define GPIO_M1_PWM_FAULT0_3 (GPIO_FUNC_PFINPUT | GPIO_ALT_5 | GPIO_PORTF | GPIO_PIN_7)
#  define GPIO_M1_PWM_FAULT1_1 (GPIO_FUNC_PFINPUT | GPIO_ALT_5 | GPIO_PORTG | GPIO_PIN_0)
#  define GPIO_M1_PWM_FAULT1_2 (GPIO_FUNC_PFINPUT | GPIO_ALT_6 | GPIO_PORTK | GPIO_PIN_1)
#  define GPIO_M1_PWM_FAULT2_1 (GPIO_FUNC_PFINPUT | GPIO_ALT_5 | GPIO_PORTG | GPIO_PIN_1)
#  define GPIO_M1_PWM_FAULT2_2 (GPIO_FUNC_PFINPUT | GPIO_ALT_6 | GPIO_PORTK | GPIO_PIN_2)
#  define GPIO_M1_PWM_FAULT3   (GPIO_FUNC_PFINPUT | GPIO_ALT_6 | GPIO_PORTK | GPIO_PIN_3)

#  define GPIO_NMI_1           (GPIO_FUNC_PFIO | GPIO_ALT_8 | GPIO_PORTD | GPIO_PIN_7)
#  define GPIO_NMI_2           (GPIO_FUNC_PFIO | GPIO_ALT_8 | GPIO_PORTF | GPIO_PIN_0)

#  define GPIO_QEI0_IDX_1      (GPIO_FUNC_PFIO | GPIO_ALT_5 | GPIO_PORTH | GPIO_PIN_1)
#  define GPIO_QEI0_IDX_2      (GPIO_FUNC_PFIO | GPIO_ALT_5 | GPIO_PORTJ | GPIO_PIN_2)
#  define GPIO_QEI0_IDX_3      (GPIO_FUNC_PFIO | GPIO_ALT_6 | GPIO_PORTD | GPIO_PIN_3)
#  define GPIO_QEI0_IDX_4      (GPIO_FUNC_PFIO | GPIO_ALT_6 | GPIO_PORTF | GPIO_PIN_4)
#  define GPIO_QEI0_PHA_1      (GPIO_FUNC_PFIO | GPIO_ALT_5 | GPIO_PORTH | GPIO_PIN_4)
#  define GPIO_QEI0_PHA_2      (GPIO_FUNC_PFIO | GPIO_ALT_6 | GPIO_PORTD | GPIO_PIN_6)
#  define GPIO_QEI0_PHA_3      (GPIO_FUNC_PFIO | GPIO_ALT_6 | GPIO_PORTF | GPIO_PIN_0)
#  define GPIO_QEI0_PHB_1      (GPIO_FUNC_PFIO | GPIO_ALT_5 | GPIO_PORTH | GPIO_PIN_5)
#  define GPIO_QEI0_PHB_2      (GPIO_FUNC_PFIO | GPIO_ALT_6 | GPIO_PORTD | GPIO_PIN_7)
#  define GPIO_QEI0_PHB_3      (GPIO_FUNC_PFIO | GPIO_ALT_6 | GPIO_PORTF | GPIO_PIN_1)
#  define GPIO_QEI1_IDX_1      (GPIO_FUNC_PFIO | GPIO_ALT_5 | GPIO_PORTG | GPIO_PIN_7)
#  define GPIO_QEI1_IDX_2      (GPIO_FUNC_PFIO | GPIO_ALT_6 | GPIO_PORTC | GPIO_PIN_4)
#  define GPIO_QEI1_IDX_3      (GPIO_FUNC_PFIO | GPIO_ALT_6 | GPIO_PORTG | GPIO_PIN_5)
#  define GPIO_QEI1_PHA_1      (GPIO_FUNC_PFIO | GPIO_ALT_6 | GPIO_PORTC | GPIO_PIN_5)
#  define GPIO_QEI1_PHA_2      (GPIO_FUNC_PFIO | GPIO_ALT_6 | GPIO_PORTG | GPIO_PIN_0)
#  define GPIO_QEI1_PHA_3      (GPIO_FUNC_PFIO | GPIO_ALT_6 | GPIO_PORTG | GPIO_PIN_3)
#  define GPIO_QEI1_PHB_1      (GPIO_FUNC_PFIO | GPIO_ALT_6 | GPIO_PORTC | GPIO_PIN_6)
#  define GPIO_QEI1_PHB_2      (GPIO_FUNC_PFIO | GPIO_ALT_6 | GPIO_PORTG | GPIO_PIN_1)
#  define GPIO_QEI1_PHB_3      (GPIO_FUNC_PFIO | GPIO_ALT_6 | GPIO_PORTG | GPIO_PIN_4)

#  define GPIO_SSI0_CLK        (GPIO_FUNC_PFIO | GPIO_ALT_2 | GPIO_PORTA | GPIO_PIN_2)
#  define GPIO_SSI0_FSS        (GPIO_FUNC_PFIO | GPIO_ALT_2 | GPIO_PORTA | GPIO_PIN_3)
#  define GPIO_SSI0_RX         (GPIO_FUNC_PFIO | GPIO_ALT_2 | GPIO_PORTA | GPIO_PIN_4)
#  define GPIO_SSI0_TX         (GPIO_FUNC_PFIO | GPIO_ALT_2 | GPIO_PORTA | GPIO_PIN_5)
#  define GPIO_SSI1_CLK_1      (GPIO_FUNC_PFIO | GPIO_ALT_2 | GPIO_PORTD | GPIO_PIN_0)
#  define GPIO_SSI1_CLK_2      (GPIO_FUNC_PFIO | GPIO_ALT_2 | GPIO_PORTF | GPIO_PIN_2)
#  define GPIO_SSI1_FSS_1      (GPIO_FUNC_PFIO | GPIO_ALT_2 | GPIO_PORTD | GPIO_PIN_1)
#  define GPIO_SSI1_FSS_2      (GPIO_FUNC_PFIO | GPIO_ALT_2 | GPIO_PORTF | GPIO_PIN_3)
#  define GPIO_SSI1_RX_1       (GPIO_FUNC_PFIO | GPIO_ALT_2 | GPIO_PORTD | GPIO_PIN_2)
#  define GPIO_SSI1_RX_2       (GPIO_FUNC_PFIO | GPIO_ALT_2 | GPIO_PORTF | GPIO_PIN_0)
#  define GPIO_SSI1_TX_1       (GPIO_FUNC_PFIO | GPIO_ALT_2 | GPIO_PORTD | GPIO_PIN_3)
#  define GPIO_SSI1_TX_2       (GPIO_FUNC_PFIO | GPIO_ALT_2 | GPIO_PORTF | GPIO_PIN_1)
#  define GPIO_SSI2_CLK_1      (GPIO_FUNC_PFIO | GPIO_ALT_2 | GPIO_PORTB | GPIO_PIN_4)
#  define GPIO_SSI2_CLK_2      (GPIO_FUNC_PFIO | GPIO_ALT_2 | GPIO_PORTH | GPIO_PIN_4)
#  define GPIO_SSI2_FSS_1      (GPIO_FUNC_PFIO | GPIO_ALT_2 | GPIO_PORTB | GPIO_PIN_5)
#  define GPIO_SSI2_FSS_2      (GPIO_FUNC_PFIO | GPIO_ALT_2 | GPIO_PORTH | GPIO_PIN_5)
#  define GPIO_SSI2_RX_1       (GPIO_FUNC_PFIO | GPIO_ALT_2 | GPIO_PORTB | GPIO_PIN_6)
#  define GPIO_SSI2_RX_2       (GPIO_FUNC_PFIO | GPIO_ALT_2 | GPIO_PORTH | GPIO_PIN_6)
#  define GPIO_SSI2_TX_1       (GPIO_FUNC_PFIO | GPIO_ALT_2 | GPIO_PORTB | GPIO_PIN_7)
#  define GPIO_SSI2_TX_2       (GPIO_FUNC_PFIO | GPIO_ALT_2 | GPIO_PORTH | GPIO_PIN_7)
#  define GPIO_SSI3_CLK_1      (GPIO_FUNC_PFIO | GPIO_ALT_1 | GPIO_PORTD | GPIO_PIN_0)
#  define GPIO_SSI3_CLK_2      (GPIO_FUNC_PFIO | GPIO_ALT_2 | GPIO_PORTH | GPIO_PIN_0)
#  define GPIO_SSI3_CLK_3      (GPIO_FUNC_PFIO | GPIO_ALT_2 | GPIO_PORTK | GPIO_PIN_0)
#  define GPIO_SSI3_FSS_1      (GPIO_FUNC_PFIO | GPIO_ALT_1 | GPIO_PORTD | GPIO_PIN_1)
#  define GPIO_SSI3_FSS_2      (GPIO_FUNC_PFIO | GPIO_ALT_2 | GPIO_PORTH | GPIO_PIN_1)
#  define GPIO_SSI3_FSS_3      (GPIO_FUNC_PFIO | GPIO_ALT_2 | GPIO_PORTK | GPIO_PIN_1)
#  define GPIO_SSI3_RX_1       (GPIO_FUNC_PFIO | GPIO_ALT_1 | GPIO_PORTD | GPIO_PIN_2)
#  define GPIO_SSI3_RX_2       (GPIO_FUNC_PFIO | GPIO_ALT_2 | GPIO_PORTH | GPIO_PIN_2)
#  define GPIO_SSI3_RX_3       (GPIO_FUNC_PFIO | GPIO_ALT_2 | GPIO_PORTK | GPIO_PIN_2)
#  define GPIO_SSI3_TX_1       (GPIO_FUNC_PFIO | GPIO_ALT_1 | GPIO_PORTD | GPIO_PIN_3)
#  define GPIO_SSI3_TX_2       (GPIO_FUNC_PFIO | GPIO_ALT_2 | GPIO_PORTH | GPIO_PIN_3)
#  define GPIO_SSI3_TX_3       (GPIO_FUNC_PFIO | GPIO_ALT_2 | GPIO_PORTK | GPIO_PIN_3)

#  define GPIO_TCK_SWCLK       (GPIO_FUNC_PFIO | GPIO_ALT_1 | GPIO_PORTC | GPIO_PIN_0)
#  define GPIO_TDI             (GPIO_FUNC_PFIO | GPIO_ALT_1 | GPIO_PORTC | GPIO_PIN_2)
#  define GPIO_TDO_SWO         (GPIO_FUNC_PFIO | GPIO_ALT_1 | GPIO_PORTC | GPIO_PIN_3)
#  define GPIO_TMS_SWDIO       (GPIO_FUNC_PFIO | GPIO_ALT_1 | GPIO_PORTC | GPIO_PIN_1)

#  define GPIO_TR_CLK          (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTF | GPIO_PIN_3)
#  define GPIO_TR_D0           (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTF | GPIO_PIN_2)
#  define GPIO_TR_D1           (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTF | GPIO_PIN_1)
#  define GPIO_TR_D2           (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTF | GPIO_PIN_0)
#  define GPIO_TR_D3           (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTF | GPIO_PIN_4)

#  define GPIO_TIM0_CCP0_1     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTB | GPIO_PIN_6)
#  define GPIO_TIM0_CCP0_2     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTF | GPIO_PIN_0)
#  define GPIO_TIM0_CCP0_3     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTL | GPIO_PIN_0)
#  define GPIO_TIM0_CCP1_1     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTB | GPIO_PIN_7)
#  define GPIO_TIM0_CCP1_2     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTF | GPIO_PIN_1)
#  define GPIO_TIM0_CCP1_3     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTL | GPIO_PIN_1)
#  define GPIO_TIM1_CCP0_1     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTB | GPIO_PIN_4)
#  define GPIO_TIM1_CCP0_2     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTF | GPIO_PIN_2)
#  define GPIO_TIM1_CCP0_3     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTJ | GPIO_PIN_0)
#  define GPIO_TIM1_CCP0_4     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTL | GPIO_PIN_2)
#  define GPIO_TIM1_CCP1_1     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTB | GPIO_PIN_5)
#  define GPIO_TIM1_CCP1_2     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTF | GPIO_PIN_3)
#  define GPIO_TIM1_CCP1_3     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTJ | GPIO_PIN_1)
#  define GPIO_TIM1_CCP1_4     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTL | GPIO_PIN_3)
#  define GPIO_TIM2_CCP0_1     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTB | GPIO_PIN_0)
#  define GPIO_TIM2_CCP0_2     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTF | GPIO_PIN_4)
#  define GPIO_TIM2_CCP0_3     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTJ | GPIO_PIN_2)
#  define GPIO_TIM2_CCP0_4     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTL | GPIO_PIN_4)
#  define GPIO_TIM2_CCP1_1     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTB | GPIO_PIN_1)
#  define GPIO_TIM2_CCP1_2     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTF | GPIO_PIN_5)
#  define GPIO_TIM2_CCP1_3     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTJ | GPIO_PIN_3)
#  define GPIO_TIM2_CCP1_4     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTL | GPIO_PIN_5)
#  define GPIO_TIM3_CCP0_1     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTB | GPIO_PIN_2)
#  define GPIO_TIM3_CCP0_2     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTF | GPIO_PIN_6)
#  define GPIO_TIM3_CCP0_3     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTJ | GPIO_PIN_4)
#  define GPIO_TIM3_CCP0_4     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTL | GPIO_PIN_6)
#  define GPIO_TIM3_CCP1_1     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTB | GPIO_PIN_3)
#  define GPIO_TIM3_CCP1_2     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTF | GPIO_PIN_7)
#  define GPIO_TIM3_CCP1_3     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTJ | GPIO_PIN_5)
#  define GPIO_TIM3_CCP1_4     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTL | GPIO_PIN_7)
#  define GPIO_TIM4_CCP0_1     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTC | GPIO_PIN_0)
#  define GPIO_TIM4_CCP0_2     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTG | GPIO_PIN_0)
#  define GPIO_TIM4_CCP0_3     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTM | GPIO_PIN_0)
#  define GPIO_TIM4_CCP0_4     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTP | GPIO_PIN_0)
#  define GPIO_TIM4_CCP1_1     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTC | GPIO_PIN_1)
#  define GPIO_TIM4_CCP1_2     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTG | GPIO_PIN_1)
#  define GPIO_TIM4_CCP1_3     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTM | GPIO_PIN_1)
#  define GPIO_TIM4_CCP1_4     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTP | GPIO_PIN_1)
#  define GPIO_TIM5_CCP0_1     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTC | GPIO_PIN_2)
#  define GPIO_TIM5_CCP0_2     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTG | GPIO_PIN_2)
#  define GPIO_TIM5_CCP0_3     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTM | GPIO_PIN_2)
#  define GPIO_TIM5_CCP0_4     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTP | GPIO_PIN_2)
#  define GPIO_TIM5_CCP1_1     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTC | GPIO_PIN_3)
#  define GPIO_TIM5_CCP1_2     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTG | GPIO_PIN_3)
#  define GPIO_TIM5_CCP1_3     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTM | GPIO_PIN_3)
#  define GPIO_TIM5_CCP1_4     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTP | GPIO_PIN_3)

#  define GPIO_UART0_RX        (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTA | GPIO_PIN_0)
#  define GPIO_UART0_TX        (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTA | GPIO_PIN_1)
#  define GPIO_UART1_CTS_1     (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTF | GPIO_PIN_1)
#  define GPIO_UART1_CTS_2     (GPIO_FUNC_PFINPUT | GPIO_ALT_8 | GPIO_PORTC | GPIO_PIN_5)
#  define GPIO_UART1_DCD       (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTF | GPIO_PIN_2)
#  define GPIO_UART1_DSR       (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTF | GPIO_PIN_3)
#  define GPIO_UART1_DTR       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTF | GPIO_PIN_4)
#  define GPIO_UART1_RI        (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTE | GPIO_PIN_7)
#  define GPIO_UART1_RTS_1     (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTF | GPIO_PIN_0)
#  define GPIO_UART1_RTS_2     (GPIO_FUNC_PFOUTPUT | GPIO_ALT_8 | GPIO_PORTC | GPIO_PIN_4)
#  define GPIO_UART1_RX_1      (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTB | GPIO_PIN_0)
#  define GPIO_UART1_RX_2      (GPIO_FUNC_PFINPUT | GPIO_ALT_2 | GPIO_PORTC | GPIO_PIN_4)
#  define GPIO_UART1_TX_1      (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTB | GPIO_PIN_1)
#  define GPIO_UART1_TX_2      (GPIO_FUNC_PFOUTPUT | GPIO_ALT_2 | GPIO_PORTC | GPIO_PIN_5)
#  define GPIO_UART2_RX_1      (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTD | GPIO_PIN_6)
#  define GPIO_UART2_RX_2      (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTG | GPIO_PIN_4)
#  define GPIO_UART2_TX_1      (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTD | GPIO_PIN_7)
#  define GPIO_UART2_TX_2      (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTG | GPIO_PIN_5)
#  define GPIO_UART3_RX        (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTC | GPIO_PIN_6)
#  define GPIO_UART3_TX        (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTC | GPIO_PIN_7)
#  define GPIO_UART4_RX_1      (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTC | GPIO_PIN_4)
#  define GPIO_UART4_RX_2      (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTJ | GPIO_PIN_0)
#  define GPIO_UART4_TX_1      (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTC | GPIO_PIN_5)
#  define GPIO_UART4_TX_2      (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTJ | GPIO_PIN_1)
#  define GPIO_UART5_RX_1      (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTE | GPIO_PIN_4)
#  define GPIO_UART5_RX_2      (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTJ | GPIO_PIN_2)
#  define GPIO_UART5_TX_1      (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTE | GPIO_PIN_5)
#  define GPIO_UART5_TX_2      (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTJ | GPIO_PIN_3)
#  define GPIO_UART6_RX_1      (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTD | GPIO_PIN_4)
#  define GPIO_UART6_RX_2      (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTJ | GPIO_PIN_4)
#  define GPIO_UART6_TX_1      (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTD | GPIO_PIN_5)
#  define GPIO_UART6_TX_2      (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTJ | GPIO_PIN_5)
#  define GPIO_UART7_RX_1      (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTE | GPIO_PIN_0)
#  define GPIO_UART7_RX_2      (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTK | GPIO_PIN_4)
#  define GPIO_UART7_TX_1      (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTE | GPIO_PIN_1)
#  define GPIO_UART7_TX_2      (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTK | GPIO_PIN_5)

#  define GPIO_USB0_DM         (GPIO_FUNC_ANIO | GPIO_PORTL | GPIO_PIN_7)
#  define GPIO_USB0_DP         (GPIO_FUNC_ANIO | GPIO_PORTL | GPIO_PIN_6)
#  define GPIO_USB0_EPEN_1     (GPIO_FUNC_PFOUTPUT | GPIO_ALT_8 | GPIO_PORTC | GPIO_PIN_6)
#  define GPIO_USB0_EPEN_2     (GPIO_FUNC_PFOUTPUT | GPIO_ALT_8 | GPIO_PORTD | GPIO_PIN_2)
#  define GPIO_USB0_EPEN_3     (GPIO_FUNC_PFOUTPUT | GPIO_ALT_8 | GPIO_PORTF | GPIO_PIN_4)
#  define GPIO_USB0_EPEN_4     (GPIO_FUNC_PFOUTPUT | GPIO_ALT_8 | GPIO_PORTG | GPIO_PIN_4)
#  define GPIO_USB0_ID         (GPIO_FUNC_ANINPUT | GPIO_PORTB | GPIO_PIN_0)
#  define GPIO_USB0_PFLT_1     (GPIO_FUNC_PFINPUT | GPIO_ALT_8 | GPIO_PORTC | GPIO_PIN_7)
#  define GPIO_USB0_PFLT_2     (GPIO_FUNC_PFINPUT | GPIO_ALT_8 | GPIO_PORTD | GPIO_PIN_3)
#  define GPIO_USB0_PFLT_3     (GPIO_FUNC_PFINPUT | GPIO_ALT_8 | GPIO_PORTF | GPIO_PIN_5)
#  define GPIO_USB0_PFLT_4     (GPIO_FUNC_PFINPUT | GPIO_ALT_8 | GPIO_PORTG | GPIO_PIN_5)
#  define GPIO_USB0_VBUS       (GPIO_FUNC_ANIO | GPIO_PORTB | GPIO_PIN_1)

#  define GPIO_WTIM0_CCP0_1    (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTC | GPIO_PIN_4)
#  define GPIO_WTIM0_CCP0_2    (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTG | GPIO_PIN_4)
#  define GPIO_WTIM0_CCP0_3    (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTM | GPIO_PIN_6)
#  define GPIO_WTIM0_CCP0_4    (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTP | GPIO_PIN_4)
#  define GPIO_WTIM0_CCP0_5    (GPIO_FUNC_PFIO | GPIO_ALT_8 | GPIO_PORTL | GPIO_PIN_0)
#  define GPIO_WTIM0_CCP1_1    (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTC | GPIO_PIN_5)
#  define GPIO_WTIM0_CCP1_2    (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTG | GPIO_PIN_5)
#  define GPIO_WTIM0_CCP1_3    (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTM | GPIO_PIN_7)
#  define GPIO_WTIM0_CCP1_4    (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTP | GPIO_PIN_5)
#  define GPIO_WTIM0_CCP1_5    (GPIO_FUNC_PFIO | GPIO_ALT_8 | GPIO_PORTL | GPIO_PIN_1)
#  define GPIO_WTIM1_CCP0_1    (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTC | GPIO_PIN_6)
#  define GPIO_WTIM1_CCP0_2    (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTG | GPIO_PIN_6)
#  define GPIO_WTIM1_CCP0_3    (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTK | GPIO_PIN_6)
#  define GPIO_WTIM1_CCP0_4    (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTP | GPIO_PIN_6)
#  define GPIO_WTIM1_CCP0_5    (GPIO_FUNC_PFIO | GPIO_ALT_8 | GPIO_PORTL | GPIO_PIN_2)
#  define GPIO_WTIM1_CCP1_1    (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTC | GPIO_PIN_7)
#  define GPIO_WTIM1_CCP1_2    (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTG | GPIO_PIN_7)
#  define GPIO_WTIM1_CCP1_3    (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTK | GPIO_PIN_7)
#  define GPIO_WTIM1_CCP1_4    (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTP | GPIO_PIN_7)
#  define GPIO_WTIM1_CCP1_5    (GPIO_FUNC_PFIO | GPIO_ALT_8 | GPIO_PORTL | GPIO_PIN_3)
#  define GPIO_WTIM2_CCP0_1    (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTD | GPIO_PIN_0)
#  define GPIO_WTIM2_CCP0_2    (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTH | GPIO_PIN_0)
#  define GPIO_WTIM2_CCP0_3    (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTN | GPIO_PIN_2)
#  define GPIO_WTIM2_CCP0_4    (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTQ | GPIO_PIN_0)
#  define GPIO_WTIM2_CCP0_5    (GPIO_FUNC_PFIO | GPIO_ALT_8 | GPIO_PORTL | GPIO_PIN_4)
#  define GPIO_WTIM2_CCP1_1    (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTD | GPIO_PIN_1)
#  define GPIO_WTIM2_CCP1_2    (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTH | GPIO_PIN_1)
#  define GPIO_WTIM2_CCP1_3    (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTN | GPIO_PIN_3)
#  define GPIO_WTIM2_CCP1_4    (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTQ | GPIO_PIN_1)
#  define GPIO_WTIM2_CCP1_5    (GPIO_FUNC_PFIO | GPIO_ALT_8 | GPIO_PORTL | GPIO_PIN_5)
#  define GPIO_WTIM3_CCP0_1    (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTD | GPIO_PIN_2)
#  define GPIO_WTIM3_CCP0_2    (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTH | GPIO_PIN_4)
#  define GPIO_WTIM3_CCP0_3    (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTN | GPIO_PIN_4)
#  define GPIO_WTIM3_CCP0_4    (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTQ | GPIO_PIN_2)
#  define GPIO_WTIM3_CCP0_5    (GPIO_FUNC_PFIO | GPIO_ALT_8 | GPIO_PORTL | GPIO_PIN_6)
#  define GPIO_WTIM3_CCP1_1    (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTD | GPIO_PIN_3)
#  define GPIO_WTIM3_CCP1_2    (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTH | GPIO_PIN_5)
#  define GPIO_WTIM3_CCP1_3    (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTN | GPIO_PIN_5)
#  define GPIO_WTIM3_CCP1_4    (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTQ | GPIO_PIN_3)
#  define GPIO_WTIM3_CCP1_5    (GPIO_FUNC_PFIO | GPIO_ALT_8 | GPIO_PORTL | GPIO_PIN_7)
#  define GPIO_WTIM4_CCP0_1    (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTD | GPIO_PIN_4)
#  define GPIO_WTIM4_CCP0_2    (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTH | GPIO_PIN_6)
#  define GPIO_WTIM4_CCP0_3    (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTN | GPIO_PIN_6)
#  define GPIO_WTIM4_CCP0_4    (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTQ | GPIO_PIN_4)
#  define GPIO_WTIM4_CCP0_5    (GPIO_FUNC_PFIO | GPIO_ALT_8 | GPIO_PORTM | GPIO_PIN_0)
#  define GPIO_WTIM4_CCP1_1    (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTD | GPIO_PIN_5)
#  define GPIO_WTIM4_CCP1_2    (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTH | GPIO_PIN_7)
#  define GPIO_WTIM4_CCP1_3    (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTN | GPIO_PIN_7)
#  define GPIO_WTIM4_CCP1_4    (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTQ | GPIO_PIN_5)
#  define GPIO_WTIM4_CCP1_5    (GPIO_FUNC_PFIO | GPIO_ALT_8 | GPIO_PORTM | GPIO_PIN_1)
#  define GPIO_WTIM5_CCP0_1    (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTD | GPIO_PIN_6)
#  define GPIO_WTIM5_CCP0_2    (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTH | GPIO_PIN_2)
#  define GPIO_WTIM5_CCP0_3    (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTQ | GPIO_PIN_6)
#  define GPIO_WTIM5_CCP0_4    (GPIO_FUNC_PFIO | GPIO_ALT_8 | GPIO_PORTM | GPIO_PIN_2)
#  define GPIO_WTIM5_CCP1_1    (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTD | GPIO_PIN_7)
#  define GPIO_WTIM5_CCP1_2    (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTH | GPIO_PIN_3)
#  define GPIO_WTIM5_CCP1_3    (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTQ | GPIO_PIN_7)
#  define GPIO_WTIM5_CCP1_4    (GPIO_FUNC_PFIO | GPIO_ALT_8 | GPIO_PORTM | GPIO_PIN_3)

#elif defined(CONFIG_ARCH_CHIP_TM4C123GH6PMI)

#  define GPIO_ADC_AIN0        (GPIO_FUNC_ANINPUT | GPIO_PORTE | GPIO_PIN_3)
#  define GPIO_ADC_AIN1        (GPIO_FUNC_ANINPUT | GPIO_PORTE | GPIO_PIN_2)
#  define GPIO_ADC_AIN2        (GPIO_FUNC_ANINPUT | GPIO_PORTE | GPIO_PIN_1)
#  define GPIO_ADC_AIN3        (GPIO_FUNC_ANINPUT | GPIO_PORTE | GPIO_PIN_0)
#  define GPIO_ADC_AIN4        (GPIO_FUNC_ANINPUT | GPIO_PORTD | GPIO_PIN_3)
#  define GPIO_ADC_AIN5        (GPIO_FUNC_ANINPUT | GPIO_PORTD | GPIO_PIN_2)
#  define GPIO_ADC_AIN6        (GPIO_FUNC_ANINPUT | GPIO_PORTD | GPIO_PIN_1)
#  define GPIO_ADC_AIN7        (GPIO_FUNC_ANINPUT | GPIO_PORTD | GPIO_PIN_0)
#  define GPIO_ADC_AIN8        (GPIO_FUNC_ANINPUT | GPIO_PORTE | GPIO_PIN_5)
#  define GPIO_ADC_AIN9        (GPIO_FUNC_ANINPUT | GPIO_PORTE | GPIO_PIN_4)
#  define GPIO_ADC_AIN10       (GPIO_FUNC_ANINPUT | GPIO_PORTB | GPIO_PIN_4)
#  define GPIO_ADC_AIN11       (GPIO_FUNC_ANINPUT | GPIO_PORTB | GPIO_PIN_5)

#  define GPIO_CAN0_RX_1       (GPIO_FUNC_PFINPUT | GPIO_ALT_3 | GPIO_PORTF | GPIO_PIN_0)
#  define GPIO_CAN0_RX_2       (GPIO_FUNC_PFINPUT | GPIO_ALT_8 | GPIO_PORTB | GPIO_PIN_4)
#  define GPIO_CAN0_RX_3       (GPIO_FUNC_PFINPUT | GPIO_ALT_8 | GPIO_PORTE | GPIO_PIN_4)
#  define GPIO_CAN0_TX_1       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_3 | GPIO_PORTF | GPIO_PIN_3)
#  define GPIO_CAN0_TX_2       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_8 | GPIO_PORTB | GPIO_PIN_5)
#  define GPIO_CAN0_TX_3       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_8 | GPIO_PORTE | GPIO_PIN_5)
#  define GPIO_CAN1_RX_1       (GPIO_FUNC_PFINPUT | GPIO_ALT_8 | GPIO_PORTA | GPIO_PIN_0)
#  define GPIO_CAN1_TX_1       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_8 | GPIO_PORTA | GPIO_PIN_1)

#  define GPIO_CMP0_NIN        (GPIO_FUNC_ANINPUT | GPIO_PORTC | GPIO_PIN_7)
#  define GPIO_CMP0_OUT_2      (GPIO_FUNC_PFOUTPUT | GPIO_ALT_9 | GPIO_PORTF | GPIO_PIN_0)
#  define GPIO_CMP0_PIN        (GPIO_FUNC_ANINPUT | GPIO_PORTC | GPIO_PIN_6)
#  define GPIO_CMP1_NIN        (GPIO_FUNC_ANINPUT | GPIO_PORTC | GPIO_PIN_4)
#  define GPIO_CMP1_OUT_2      (GPIO_FUNC_PFOUTPUT | GPIO_ALT_9 | GPIO_PORTF | GPIO_PIN_1)
#  define GPIO_CMP1_PIN        (GPIO_FUNC_ANINPUT | GPIO_PORTC | GPIO_PIN_5)

#  define GPIO_I2C0_SCL        (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTB | GPIO_PIN_2)
#  define GPIO_I2C0_SDA        (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTB | GPIO_PIN_3)
#  define GPIO_I2C1_SCL        (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTA | GPIO_PIN_6)
#  define GPIO_I2C1_SDA        (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTA | GPIO_PIN_7)
#  define GPIO_I2C2_SCL        (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTE | GPIO_PIN_4)
#  define GPIO_I2C2_SDA        (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTE | GPIO_PIN_5)
#  define GPIO_I2C3_SCL        (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTD | GPIO_PIN_0)
#  define GPIO_I2C3_SDA        (GPIO_FUNC_PFIO | GPIO_ALT_3 | GPIO_PORTD | GPIO_PIN_1)

#  define GPIO_M0_PWM0         (GPIO_FUNC_PFOUTPUT | GPIO_ALT_4 | GPIO_PORTB | GPIO_PIN_6)
#  define GPIO_M0_PWM1         (GPIO_FUNC_PFOUTPUT | GPIO_ALT_4 | GPIO_PORTB | GPIO_PIN_7)
#  define GPIO_M0_PWM2         (GPIO_FUNC_PFOUTPUT | GPIO_ALT_4 | GPIO_PORTB | GPIO_PIN_4)
#  define GPIO_M0_PWM3         (GPIO_FUNC_PFOUTPUT | GPIO_ALT_4 | GPIO_PORTB | GPIO_PIN_5)
#  define GPIO_M0_PWM4         (GPIO_FUNC_PFOUTPUT | GPIO_ALT_4 | GPIO_PORTE | GPIO_PIN_4)
#  define GPIO_M0_PWM5         (GPIO_FUNC_PFOUTPUT | GPIO_ALT_4 | GPIO_PORTE | GPIO_PIN_5)
#  define GPIO_M0_PWM6         (GPIO_FUNC_PFOUTPUT | GPIO_ALT_4 | GPIO_PORTC | GPIO_PIN_4)
#  define GPIO_M0_PWM7         (GPIO_FUNC_PFOUTPUT | GPIO_ALT_4 | GPIO_PORTC | GPIO_PIN_5)
#  define GPIO_M0_PWM_FAULT0_1 (GPIO_FUNC_PFINPUT | GPIO_ALT_4 | GPIO_PORTD | GPIO_PIN_2)
#  define GPIO_M0_PWM_FAULT0_2 (GPIO_FUNC_PFINPUT | GPIO_ALT_4 | GPIO_PORTD | GPIO_PIN_6)
#  define GPIO_M0_PWM_FAULT0_3 (GPIO_FUNC_PFINPUT | GPIO_ALT_4 | GPIO_PORTF | GPIO_PIN_2)
#  define GPIO_M1_PWM0         (GPIO_FUNC_PFOUTPUT | GPIO_ALT_5 | GPIO_PORTD | GPIO_PIN_0)
#  define GPIO_M1_PWM1         (GPIO_FUNC_PFOUTPUT | GPIO_ALT_5 | GPIO_PORTD | GPIO_PIN_1)
#  define GPIO_M1_PWM2_1       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_5 | GPIO_PORTA | GPIO_PIN_6)
#  define GPIO_M1_PWM2_2       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_5 | GPIO_PORTE | GPIO_PIN_4)
#  define GPIO_M1_PWM3_1       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_5 | GPIO_PORTA | GPIO_PIN_7)
#  define GPIO_M1_PWM3_2       (GPIO_FUNC_PFOUTPUT | GPIO_ALT_5 | GPIO_PORTE | GPIO_PIN_5)
#  define GPIO_M1_PWM4         (GPIO_FUNC_PFOUTPUT | GPIO_ALT_5 | GPIO_PORTF | GPIO_PIN_0)
#  define GPIO_M1_PWM5         (GPIO_FUNC_PFOUTPUT | GPIO_ALT_5 | GPIO_PORTF | GPIO_PIN_1)
#  define GPIO_M1_PWM6         (GPIO_FUNC_PFOUTPUT | GPIO_ALT_5 | GPIO_PORTF | GPIO_PIN_2)
#  define GPIO_M1_PWM7         (GPIO_FUNC_PFOUTPUT | GPIO_ALT_5 | GPIO_PORTF | GPIO_PIN_3)
#  define GPIO_M1_PWM_FAULT0_1 (GPIO_FUNC_PFINPUT | GPIO_ALT_5 | GPIO_PORTF | GPIO_PIN_4)

#  define GPIO_NMI_1           (GPIO_FUNC_PFIO | GPIO_ALT_8 | GPIO_PORTD | GPIO_PIN_7)
#  define GPIO_NMI_2           (GPIO_FUNC_PFIO | GPIO_ALT_8 | GPIO_PORTF | GPIO_PIN_0)

#  define GPIO_QEI0_IDX_1      (GPIO_FUNC_PFIO | GPIO_ALT_6 | GPIO_PORTD | GPIO_PIN_3)
#  define GPIO_QEI0_IDX_2      (GPIO_FUNC_PFIO | GPIO_ALT_6 | GPIO_PORTF | GPIO_PIN_4)
#  define GPIO_QEI0_PHA_1      (GPIO_FUNC_PFIO | GPIO_ALT_6 | GPIO_PORTD | GPIO_PIN_6)
#  define GPIO_QEI0_PHA_2      (GPIO_FUNC_PFIO | GPIO_ALT_6 | GPIO_PORTF | GPIO_PIN_0)
#  define GPIO_QEI0_PHB_1      (GPIO_FUNC_PFIO | GPIO_ALT_6 | GPIO_PORTD | GPIO_PIN_7)
#  define GPIO_QEI0_PHB_2      (GPIO_FUNC_PFIO | GPIO_ALT_6 | GPIO_PORTF | GPIO_PIN_1)
#  define GPIO_QEI1_IDX        (GPIO_FUNC_PFIO | GPIO_ALT_6 | GPIO_PORTC | GPIO_PIN_4)
#  define GPIO_QEI1_PHA        (GPIO_FUNC_PFIO | GPIO_ALT_6 | GPIO_PORTC | GPIO_PIN_5)
#  define GPIO_QEI1_PHB        (GPIO_FUNC_PFIO | GPIO_ALT_6 | GPIO_PORTC | GPIO_PIN_6)

#  define GPIO_SSI0_CLK        (GPIO_FUNC_PFIO | GPIO_ALT_2 | GPIO_PORTA | GPIO_PIN_2)
#  define GPIO_SSI0_FSS        (GPIO_FUNC_PFIO | GPIO_ALT_2 | GPIO_PORTA | GPIO_PIN_3)
#  define GPIO_SSI0_RX         (GPIO_FUNC_PFIO | GPIO_ALT_2 | GPIO_PORTA | GPIO_PIN_4)
#  define GPIO_SSI0_TX         (GPIO_FUNC_PFIO | GPIO_ALT_2 | GPIO_PORTA | GPIO_PIN_5)
#  define GPIO_SSI1_CLK_1      (GPIO_FUNC_PFIO | GPIO_ALT_2 | GPIO_PORTD | GPIO_PIN_0)
#  define GPIO_SSI1_CLK_2      (GPIO_FUNC_PFIO | GPIO_ALT_2 | GPIO_PORTF | GPIO_PIN_2)
#  define GPIO_SSI1_FSS_1      (GPIO_FUNC_PFIO | GPIO_ALT_2 | GPIO_PORTD | GPIO_PIN_1)
#  define GPIO_SSI1_FSS_2      (GPIO_FUNC_PFIO | GPIO_ALT_2 | GPIO_PORTF | GPIO_PIN_3)
#  define GPIO_SSI1_RX_1       (GPIO_FUNC_PFIO | GPIO_ALT_2 | GPIO_PORTD | GPIO_PIN_2)
#  define GPIO_SSI1_RX_2       (GPIO_FUNC_PFIO | GPIO_ALT_2 | GPIO_PORTF | GPIO_PIN_0)
#  define GPIO_SSI1_TX_1       (GPIO_FUNC_PFIO | GPIO_ALT_2 | GPIO_PORTD | GPIO_PIN_3)
#  define GPIO_SSI1_TX_2       (GPIO_FUNC_PFIO | GPIO_ALT_2 | GPIO_PORTF | GPIO_PIN_1)
#  define GPIO_SSI2_CLK_1      (GPIO_FUNC_PFIO | GPIO_ALT_2 | GPIO_PORTB | GPIO_PIN_4)
#  define GPIO_SSI2_FSS_1      (GPIO_FUNC_PFIO | GPIO_ALT_2 | GPIO_PORTB | GPIO_PIN_5)
#  define GPIO_SSI2_RX_1       (GPIO_FUNC_PFIO | GPIO_ALT_2 | GPIO_PORTB | GPIO_PIN_6)
#  define GPIO_SSI2_TX_1       (GPIO_FUNC_PFIO | GPIO_ALT_2 | GPIO_PORTB | GPIO_PIN_7)
#  define GPIO_SSI3_CLK_1      (GPIO_FUNC_PFIO | GPIO_ALT_1 | GPIO_PORTD | GPIO_PIN_0)
#  define GPIO_SSI3_FSS_1      (GPIO_FUNC_PFIO | GPIO_ALT_1 | GPIO_PORTD | GPIO_PIN_1)
#  define GPIO_SSI3_RX_1       (GPIO_FUNC_PFIO | GPIO_ALT_1 | GPIO_PORTD | GPIO_PIN_2)
#  define GPIO_SSI3_TX_1       (GPIO_FUNC_PFIO | GPIO_ALT_1 | GPIO_PORTD | GPIO_PIN_3)

#  define GPIO_TCK_SWCLK       (GPIO_FUNC_PFIO | GPIO_ALT_1 | GPIO_PORTC | GPIO_PIN_0)
#  define GPIO_TDI             (GPIO_FUNC_PFIO | GPIO_ALT_1 | GPIO_PORTC | GPIO_PIN_2)
#  define GPIO_TDO_SWO         (GPIO_FUNC_PFIO | GPIO_ALT_1 | GPIO_PORTC | GPIO_PIN_3)
#  define GPIO_TMS_SWDIO       (GPIO_FUNC_PFIO | GPIO_ALT_1 | GPIO_PORTC | GPIO_PIN_1)

#  define GPIO_TR_CLK          (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTF | GPIO_PIN_3)
#  define GPIO_TR_D0           (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTF | GPIO_PIN_2)
#  define GPIO_TR_D1           (GPIO_FUNC_PFIO | GPIO_ALT_14 | GPIO_PORTF | GPIO_PIN_1)

#  define GPIO_TIM0_CCP0_1     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTB | GPIO_PIN_6)
#  define GPIO_TIM0_CCP0_2     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTF | GPIO_PIN_0)
#  define GPIO_TIM0_CCP1_1     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTB | GPIO_PIN_7)
#  define GPIO_TIM0_CCP1_2     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTF | GPIO_PIN_1)
#  define GPIO_TIM1_CCP0_1     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTB | GPIO_PIN_4)
#  define GPIO_TIM1_CCP0_2     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTF | GPIO_PIN_2)
#  define GPIO_TIM1_CCP1_1     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTB | GPIO_PIN_5)
#  define GPIO_TIM1_CCP1_2     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTF | GPIO_PIN_3)
#  define GPIO_TIM2_CCP0_1     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTB | GPIO_PIN_0)
#  define GPIO_TIM2_CCP0_2     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTF | GPIO_PIN_4)
#  define GPIO_TIM2_CCP1_1     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTB | GPIO_PIN_1)
#  define GPIO_TIM3_CCP0_1     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTB | GPIO_PIN_2)
#  define GPIO_TIM3_CCP1_1     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTB | GPIO_PIN_3)
#  define GPIO_TIM4_CCP0_1     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTC | GPIO_PIN_0)
#  define GPIO_TIM4_CCP1_1     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTC | GPIO_PIN_1)
#  define GPIO_TIM5_CCP0_1     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTC | GPIO_PIN_2)
#  define GPIO_TIM5_CCP1_1     (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTC | GPIO_PIN_3)

#  define GPIO_UART0_RX        (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTA | GPIO_PIN_0)
#  define GPIO_UART0_TX        (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTA | GPIO_PIN_1)
#  define GPIO_UART1_CTS_1     (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTF | GPIO_PIN_1)
#  define GPIO_UART1_CTS_2     (GPIO_FUNC_PFINPUT | GPIO_ALT_8 | GPIO_PORTC | GPIO_PIN_5)
#  define GPIO_UART1_RTS_1     (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTF | GPIO_PIN_0)
#  define GPIO_UART1_RTS_2     (GPIO_FUNC_PFOUTPUT | GPIO_ALT_8 | GPIO_PORTC | GPIO_PIN_4)
#  define GPIO_UART1_RX_1      (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTB | GPIO_PIN_0)
#  define GPIO_UART1_RX_2      (GPIO_FUNC_PFINPUT | GPIO_ALT_2 | GPIO_PORTC | GPIO_PIN_4)
#  define GPIO_UART1_TX_1      (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTB | GPIO_PIN_1)
#  define GPIO_UART1_TX_2      (GPIO_FUNC_PFOUTPUT | GPIO_ALT_2 | GPIO_PORTC | GPIO_PIN_5)
#  define GPIO_UART2_RX        (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTD | GPIO_PIN_6)
#  define GPIO_UART2_TX        (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTD | GPIO_PIN_7)
#  define GPIO_UART3_RX        (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTC | GPIO_PIN_6)
#  define GPIO_UART3_TX        (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTC | GPIO_PIN_7)
#  define GPIO_UART4_RX        (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTC | GPIO_PIN_4)
#  define GPIO_UART4_TX        (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTC | GPIO_PIN_5)
#  define GPIO_UART5_RX        (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTE | GPIO_PIN_4)
#  define GPIO_UART5_TX        (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTE | GPIO_PIN_5)
#  define GPIO_UART6_RX        (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTD | GPIO_PIN_4)
#  define GPIO_UART6_TX        (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTD | GPIO_PIN_5)
#  define GPIO_UART7_RX        (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTE | GPIO_PIN_0)
#  define GPIO_UART7_TX        (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTE | GPIO_PIN_1)

#  define GPIO_USB0_EPEN_1     (GPIO_FUNC_PFOUTPUT | GPIO_ALT_8 | GPIO_PORTC | GPIO_PIN_6)
#  define GPIO_USB0_EPEN_2     (GPIO_FUNC_PFOUTPUT | GPIO_ALT_8 | GPIO_PORTD | GPIO_PIN_2)
#  define GPIO_USB0_EPEN_3     (GPIO_FUNC_PFOUTPUT | GPIO_ALT_8 | GPIO_PORTF | GPIO_PIN_4)
#  define GPIO_USB0_ID         (GPIO_FUNC_ANINPUT | GPIO_PORTB | GPIO_PIN_0)
#  define GPIO_USB0_PFLT_1     (GPIO_FUNC_PFINPUT | GPIO_ALT_8 | GPIO_PORTC | GPIO_PIN_7)
#  define GPIO_USB0_PFLT_2     (GPIO_FUNC_PFINPUT | GPIO_ALT_8 | GPIO_PORTD | GPIO_PIN_3)
#  define GPIO_USB0_VBUS       (GPIO_FUNC_ANIO | GPIO_PORTB | GPIO_PIN_1)

#  define GPIO_WTIM0_CCP0      (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTC | GPIO_PIN_4)
#  define GPIO_WTIM0_CCP1      (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTC | GPIO_PIN_5)
#  define GPIO_WTIM1_CCP0      (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTC | GPIO_PIN_6)
#  define GPIO_WTIM1_CCP1      (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTC | GPIO_PIN_7)
#  define GPIO_WTIM2_CCP0      (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTD | GPIO_PIN_0)
#  define GPIO_WTIM2_CCP1      (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTD | GPIO_PIN_1)
#  define GPIO_WTIM3_CCP0      (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTD | GPIO_PIN_2)
#  define GPIO_WTIM3_CCP1      (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTD | GPIO_PIN_3)
#  define GPIO_WTIM4_CCP0      (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTD | GPIO_PIN_4)
#  define GPIO_WTIM4_CCP1      (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTD | GPIO_PIN_5)
#  define GPIO_WTIM5_CCP0      (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTD | GPIO_PIN_6)
#  define GPIO_WTIM5_CCP1      (GPIO_FUNC_PFIO | GPIO_ALT_7 | GPIO_PORTD | GPIO_PIN_7)

#else
#  error "Unknown TIVA chip"
#endif

/************************************************************************************
 * Public Types
 ************************************************************************************/

/************************************************************************************
 * Public Data
 ************************************************************************************/

/****************************************************************************
 * Public Function Prototypes
 ****************************************************************************/

#endif /* __ARCH_ARM_SRC_TIVA_CHIP_TM4C_PINMAP_H */
